VBA তে Error Handling Techniques: On Error Resume Next এবং On Error GoTo
VBA তে Error Handling হল সেই প্রক্রিয়া যেখানে আপনি আপনার কোডের মধ্যে ত্রুটি (Error) ঘটে গেলে তা কীভাবে পরিচালনা করবেন তা নির্ধারণ করেন। Error Handling প্রয়োগ করার মাধ্যমে আপনার কোড আরও স্থিতিস্থাপক এবং ত্রুটির সময় ব্যবস্থাপনা সহজ হয়। দুইটি সাধারণ ত্রুটি হ্যান্ডলিং কৌশল হলো On Error Resume Next এবং On Error GoTo। এই দুটি কৌশল ব্যবহার করে আপনি ত্রুটির পরিস্থিতিতে কোডের আচরণ নিয়ন্ত্রণ করতে পারবেন।
1. On Error Resume Next
On Error Resume Next ব্যবহার করলে, কোড যখন ত্রুটি ঘটে তখন VBA সরাসরি পরবর্তী লাইনে চলে যায় এবং ত্রুটিটি উপেক্ষা করে না থেমে পরবর্তী কোড চালিয়ে যায়। এটি তখন ব্যবহার করা হয় যখন আপনি জানেন যে কিছু ত্রুটি ঘটতে পারে, কিন্তু সেই ত্রুটিটি কোডের কার্যকারিতায় গুরুত্বপূর্ণ নয় এবং আপনি কোডের অন্য অংশ চালিয়ে যেতে চান।
On Error Resume Next এর Sintax:
On Error Resume NextOn Error Resume Next এর উদাহরণ:
Sub ResumeNextExample()
On Error Resume Next ' ত্রুটি হলে পরবর্তী লাইনে চলে যাবে
Dim result As Integer
result = 10 / 0 ' বিভাজক শূন্য দ্বারা ত্রুটি ঘটবে
MsgBox "Result is: " & result ' এই লাইনটি চলে যাবে, ত্রুটি উপেক্ষা করা হয়েছে
MsgBox "Code continued after error"
End Subএখানে:
- কোডটি 10 / 0 এর মাধ্যমে একটি বিভাজক শূন্যের ত্রুটি ঘটানোর চেষ্টা করে, কিন্তু On Error Resume Next স্টেটমেন্টের কারণে কোডটি পরবর্তী লাইনে চলে যায় এবং ত্রুটি উপেক্ষা করা হয়।
- MsgBox "Result is: " & result প্রদর্শন হবে, তবে এর মান 0 হবে কারণ result এ কোনো মান সেট হয়নি (কারণ ত্রুটি ঘটেছিল)।
- তারপর কোডের পরবর্তী অংশও চালু থাকবে এবং "Code continued after error" প্রদর্শিত হবে।
2. On Error GoTo
On Error GoTo ব্যবহার করলে কোডটি ত্রুটি ঘটলে একটি নির্দিষ্ট লেবেলে চলে যাবে, যেখানে আপনি ত্রুটির জন্য কোড পরিচালনা করতে পারবেন। এটি সাধারণত ত্রুটি হ্যান্ডলিং ব্লক তৈরির জন্য ব্যবহৃত হয়। কোড ত্রুটি ঘটলে এটি পূর্বনির্ধারিত অংশে চলে যায় এবং সেখানে আপনি ত্রুটি ম্যানেজমেন্ট করতে পারেন।
On Error GoTo এর Sintax:
On Error GoTo ErrorHandler- ErrorHandler: এটি একটি লেবেল, যেখানে ত্রুটি হলে কোড চলে যাবে।
On Error GoTo এর উদাহরণ:
Sub GoToExample()
On Error GoTo ErrorHandler ' ত্রুটি হলে ErrorHandler লেবেলে চলে যাবে
Dim result As Integer
result = 10 / 0 ' বিভাজক শূন্য দ্বারা ত্রুটি ঘটবে
MsgBox "Result is: " & result
Exit Sub ' ত্রুটি ঘটলে কোড ErrorHandler লেবেলে চলে যাবে
ErrorHandler:
MsgBox "An error occurred: " & Err.Description ' ত্রুটির বিবরণ প্রদর্শন
End Subএখানে:
- On Error GoTo ErrorHandler স্টেটমেন্টটি কোডের execution কন্ট্রোলকে ErrorHandler লেবেলে পাঠিয়ে দেয়, যখন 10 / 0 ত্রুটি ঘটবে।
- Err.Description ত্রুটির বিবরণ প্রদান করবে। এই উদাহরণে আউটপুট হবে: **"An error occurred: Division by zero"**।
- Exit Sub ব্যবহৃত হয়েছে যাতে ত্রুটি হ্যান্ডলিং এর আগে অন্যান্য কোড এক্সিকিউট না হয়।
On Error GoTo 0 (ত্রুটি হ্যান্ডলিং বন্ধ করা)
আপনি যদি On Error GoTo ব্যবহার করে ত্রুটি হ্যান্ডলিং শুরু করেন, তবে On Error GoTo 0 ব্যবহার করে ত্রুটি হ্যান্ডলিং বন্ধ করতে পারেন।
On Error GoTo 0 এর উদাহরণ:
Sub GoToZeroExample()
On Error GoTo ErrorHandler ' ত্রুটি হলে ErrorHandler লেবেলে যাবে
Dim result As Integer
result = 10 / 0 ' বিভাজক শূন্য দ্বারা ত্রুটি ঘটবে
MsgBox "Result is: " & result
On Error GoTo 0 ' ত্রুটি হ্যান্ডলিং বন্ধ হবে
' নতুন ত্রুটি ঘটে, কিন্তু এইবার হ্যান্ডলিং হবে না
result = 10 / 0 ' ত্রুটি হওয়ার পরে আর কোন হ্যান্ডলিং হবে না
Exit Sub
ErrorHandler:
MsgBox "An error occurred: " & Err.Description
End Subএখানে:
- On Error GoTo 0 ব্যবহৃত হয়েছে, যার মাধ্যমে ত্রুটি হ্যান্ডলিং বন্ধ করা হয়েছে।
- দ্বিতীয়বার ত্রুটি ঘটলে আর কোনো ত্রুটি হ্যান্ডলিং প্রক্রিয়া সম্পাদিত হবে না এবং প্রোগ্রাম থেমে যাবে।
Comparison: On Error Resume Next vs On Error GoTo
| Feature | On Error Resume Next | On Error GoTo |
|---|---|---|
| কাজের ধরন | ত্রুটি ঘটলে পরবর্তী লাইনে চলে যাবে, ত্রুটি উপেক্ষা করবে | ত্রুটি ঘটলে নির্দিষ্ট লেবেলে চলে যাবে এবং সেখান থেকে হ্যান্ডলিং হবে |
| ব্যবহার | ত্রুটি উপেক্ষা করা প্রয়োজন হলে, কোড চলমান রাখার জন্য | ত্রুটি ম্যানেজমেন্ট করতে, নির্দিষ্ট লেবেলে ত্রুটি পাঠানোর জন্য |
| ত্রুটির প্রভাব | ত্রুটি ঘটলেও কোড চলতে থাকবে এবং পরবর্তী কোড এক্সিকিউট হবে | ত্রুটি হলে কোড থেমে যাবে এবং নির্দিষ্ট ত্রুটি হ্যান্ডলিং সঞ্চালিত হবে |
| উদাহরণ ব্যবহার | যখন আপনি জানেন যে ত্রুটি ঘটতে পারে তবে তা কোডের কাজে বাধা দেবে না | যখন ত্রুটি সঠিকভাবে পরিচালনা করা প্রয়োজন এবং উপযুক্ত বার্তা প্রদর্শন করা উচিত |
উপসংহার
- On Error Resume Next ব্যবহার করে আপনি ত্রুটিগুলি উপেক্ষা করে কোড চালিয়ে যেতে পারেন। এটি তখন উপকারী যখন আপনি জানেন যে ত্রুটি কিছুটা ক্ষতিকর নয় এবং কোডের অবশিষ্ট অংশে কোনো বাধা সৃষ্টি করবে না।
- On Error GoTo ব্যবহার করে আপনি ত্রুটি ঘটলে কোডকে একটি নির্দিষ্ট স্থান বা লেবেলে পাঠাতে পারেন, যেখানে আপনি ত্রুটির জন্য ব্যবস্থা নিতে পারবেন। এটি একটি শক্তিশালী এবং সুনির্দিষ্ট ত্রুটি হ্যান্ডলিং কৌশল।
Read more